\hypertarget{classsock_1_1base_1_1_locked_queue}{}\section{sock\+:\+:base\+:\+:Locked\+Queue$<$ T, L\+O\+C\+K, S\+T\+O\+R\+A\+G\+E $>$ Class Template Reference}
\label{classsock_1_1base_1_1_locked_queue}\index{sock\+::base\+::\+Locked\+Queue$<$ T, L\+O\+C\+K, S\+T\+O\+R\+A\+G\+E $>$@{sock\+::base\+::\+Locked\+Queue$<$ T, L\+O\+C\+K, S\+T\+O\+R\+A\+G\+E $>$}}


{\ttfamily \#include $<$queue.\+h$>$}

Inheritance diagram for sock\+:\+:base\+:\+:Locked\+Queue$<$ T, L\+O\+C\+K, S\+T\+O\+R\+A\+G\+E $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classsock_1_1base_1_1_locked_queue}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classsock_1_1base_1_1_locked_queue_a71ae9dfe7fc5553937635ee378b3295e}{Locked\+Queue} ()
\item 
\hyperlink{classsock_1_1base_1_1_locked_queue_a9c2c2db4e4c677067ce47df315087292}{Locked\+Queue} (size\+\_\+t size)
\item 
\hyperlink{classsock_1_1base_1_1_locked_queue_ad43055dcb476f56dcca32f573c2f810a}{$\sim$\+Locked\+Queue} ()
\item 
void \hyperlink{classsock_1_1base_1_1_locked_queue_a3a957e01a4e18b2c2ca7b459eb11f5f6}{pop\+\_\+front} (T \&x)
\item 
void \hyperlink{classsock_1_1base_1_1_locked_queue_ae2ebf044359e2fbc751f584295a8cb5d}{pop\+\_\+front} ()
\item 
T \& \hyperlink{classsock_1_1base_1_1_locked_queue_a27e5f8e6ab8642a31359b4355fc9d318}{front} (void)
\item 
void \hyperlink{classsock_1_1base_1_1_locked_queue_aa71a79935d2b6c1fa2d4e9d0f3335196}{push\+\_\+back} (const T \&x)
\item 
bool \hyperlink{classsock_1_1base_1_1_locked_queue_ac0d09919fcac2c25e990dae18253b268}{empty} (void)
\item 
{\footnotesize template$<$class Checker $>$ }\\bool \hyperlink{classsock_1_1base_1_1_locked_queue_a5cafaa0c6d0705a5847bab58be8bb393}{next} (T \&x, Checker \&checker)
\begin{DoxyCompactList}\small\item\em 从队列中取下一个通过\+Checker检查的元素 \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$typename T, typename L\+O\+C\+K, typename S\+T\+O\+R\+A\+G\+E = std\+::deque$<$\+T$>$$>$class sock\+::base\+::\+Locked\+Queue$<$ T, L\+O\+C\+K, S\+T\+O\+R\+A\+G\+E $>$}

加锁队列 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{classsock_1_1base_1_1_locked_queue_a71ae9dfe7fc5553937635ee378b3295e}{}\index{sock\+::base\+::\+Locked\+Queue@{sock\+::base\+::\+Locked\+Queue}!Locked\+Queue@{Locked\+Queue}}
\index{Locked\+Queue@{Locked\+Queue}!sock\+::base\+::\+Locked\+Queue@{sock\+::base\+::\+Locked\+Queue}}
\subsubsection[{Locked\+Queue()}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T, typename L\+O\+C\+K, typename S\+T\+O\+R\+A\+G\+E = std\+::deque$<$\+T$>$$>$ {\bf sock\+::base\+::\+Locked\+Queue}$<$ T, L\+O\+C\+K, S\+T\+O\+R\+A\+G\+E $>$\+::{\bf Locked\+Queue} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classsock_1_1base_1_1_locked_queue_a71ae9dfe7fc5553937635ee378b3295e}
\hypertarget{classsock_1_1base_1_1_locked_queue_a9c2c2db4e4c677067ce47df315087292}{}\index{sock\+::base\+::\+Locked\+Queue@{sock\+::base\+::\+Locked\+Queue}!Locked\+Queue@{Locked\+Queue}}
\index{Locked\+Queue@{Locked\+Queue}!sock\+::base\+::\+Locked\+Queue@{sock\+::base\+::\+Locked\+Queue}}
\subsubsection[{Locked\+Queue(size\+\_\+t size)}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T, typename L\+O\+C\+K, typename S\+T\+O\+R\+A\+G\+E = std\+::deque$<$\+T$>$$>$ {\bf sock\+::base\+::\+Locked\+Queue}$<$ T, L\+O\+C\+K, S\+T\+O\+R\+A\+G\+E $>$\+::{\bf Locked\+Queue} (
\begin{DoxyParamCaption}
\item[{size\+\_\+t}]{size}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classsock_1_1base_1_1_locked_queue_a9c2c2db4e4c677067ce47df315087292}
\hypertarget{classsock_1_1base_1_1_locked_queue_ad43055dcb476f56dcca32f573c2f810a}{}\index{sock\+::base\+::\+Locked\+Queue@{sock\+::base\+::\+Locked\+Queue}!````~Locked\+Queue@{$\sim$\+Locked\+Queue}}
\index{````~Locked\+Queue@{$\sim$\+Locked\+Queue}!sock\+::base\+::\+Locked\+Queue@{sock\+::base\+::\+Locked\+Queue}}
\subsubsection[{$\sim$\+Locked\+Queue()}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T, typename L\+O\+C\+K, typename S\+T\+O\+R\+A\+G\+E = std\+::deque$<$\+T$>$$>$ {\bf sock\+::base\+::\+Locked\+Queue}$<$ T, L\+O\+C\+K, S\+T\+O\+R\+A\+G\+E $>$\+::$\sim${\bf Locked\+Queue} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classsock_1_1base_1_1_locked_queue_ad43055dcb476f56dcca32f573c2f810a}


\subsection{Member Function Documentation}
\hypertarget{classsock_1_1base_1_1_locked_queue_ac0d09919fcac2c25e990dae18253b268}{}\index{sock\+::base\+::\+Locked\+Queue@{sock\+::base\+::\+Locked\+Queue}!empty@{empty}}
\index{empty@{empty}!sock\+::base\+::\+Locked\+Queue@{sock\+::base\+::\+Locked\+Queue}}
\subsubsection[{empty(void)}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T, typename L\+O\+C\+K, typename S\+T\+O\+R\+A\+G\+E = std\+::deque$<$\+T$>$$>$ bool {\bf sock\+::base\+::\+Locked\+Queue}$<$ T, L\+O\+C\+K, S\+T\+O\+R\+A\+G\+E $>$\+::empty (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classsock_1_1base_1_1_locked_queue_ac0d09919fcac2c25e990dae18253b268}
\hypertarget{classsock_1_1base_1_1_locked_queue_a27e5f8e6ab8642a31359b4355fc9d318}{}\index{sock\+::base\+::\+Locked\+Queue@{sock\+::base\+::\+Locked\+Queue}!front@{front}}
\index{front@{front}!sock\+::base\+::\+Locked\+Queue@{sock\+::base\+::\+Locked\+Queue}}
\subsubsection[{front(void)}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T, typename L\+O\+C\+K, typename S\+T\+O\+R\+A\+G\+E = std\+::deque$<$\+T$>$$>$ T\& {\bf sock\+::base\+::\+Locked\+Queue}$<$ T, L\+O\+C\+K, S\+T\+O\+R\+A\+G\+E $>$\+::front (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classsock_1_1base_1_1_locked_queue_a27e5f8e6ab8642a31359b4355fc9d318}
\hypertarget{classsock_1_1base_1_1_locked_queue_a5cafaa0c6d0705a5847bab58be8bb393}{}\index{sock\+::base\+::\+Locked\+Queue@{sock\+::base\+::\+Locked\+Queue}!next@{next}}
\index{next@{next}!sock\+::base\+::\+Locked\+Queue@{sock\+::base\+::\+Locked\+Queue}}
\subsubsection[{next(\+T \&x, Checker \&checker)}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T, typename L\+O\+C\+K, typename S\+T\+O\+R\+A\+G\+E = std\+::deque$<$\+T$>$$>$ template$<$class Checker $>$ bool {\bf sock\+::base\+::\+Locked\+Queue}$<$ T, L\+O\+C\+K, S\+T\+O\+R\+A\+G\+E $>$\+::next (
\begin{DoxyParamCaption}
\item[{T \&}]{x, }
\item[{Checker \&}]{checker}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classsock_1_1base_1_1_locked_queue_a5cafaa0c6d0705a5847bab58be8bb393}


从队列中取下一个通过\+Checker检查的元素 


\begin{DoxyParams}{Parameters}
{\em x} & 用来返回 \\
\hline
{\em checker} & 检查器，检查器需要有(bool process(\+T\&))函数 \\
\hline
\end{DoxyParams}
\hypertarget{classsock_1_1base_1_1_locked_queue_a3a957e01a4e18b2c2ca7b459eb11f5f6}{}\index{sock\+::base\+::\+Locked\+Queue@{sock\+::base\+::\+Locked\+Queue}!pop\+\_\+front@{pop\+\_\+front}}
\index{pop\+\_\+front@{pop\+\_\+front}!sock\+::base\+::\+Locked\+Queue@{sock\+::base\+::\+Locked\+Queue}}
\subsubsection[{pop\+\_\+front(\+T \&x)}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T, typename L\+O\+C\+K, typename S\+T\+O\+R\+A\+G\+E = std\+::deque$<$\+T$>$$>$ void {\bf sock\+::base\+::\+Locked\+Queue}$<$ T, L\+O\+C\+K, S\+T\+O\+R\+A\+G\+E $>$\+::pop\+\_\+front (
\begin{DoxyParamCaption}
\item[{T \&}]{x}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classsock_1_1base_1_1_locked_queue_a3a957e01a4e18b2c2ca7b459eb11f5f6}
\hypertarget{classsock_1_1base_1_1_locked_queue_ae2ebf044359e2fbc751f584295a8cb5d}{}\index{sock\+::base\+::\+Locked\+Queue@{sock\+::base\+::\+Locked\+Queue}!pop\+\_\+front@{pop\+\_\+front}}
\index{pop\+\_\+front@{pop\+\_\+front}!sock\+::base\+::\+Locked\+Queue@{sock\+::base\+::\+Locked\+Queue}}
\subsubsection[{pop\+\_\+front()}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T, typename L\+O\+C\+K, typename S\+T\+O\+R\+A\+G\+E = std\+::deque$<$\+T$>$$>$ void {\bf sock\+::base\+::\+Locked\+Queue}$<$ T, L\+O\+C\+K, S\+T\+O\+R\+A\+G\+E $>$\+::pop\+\_\+front (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classsock_1_1base_1_1_locked_queue_ae2ebf044359e2fbc751f584295a8cb5d}
\hypertarget{classsock_1_1base_1_1_locked_queue_aa71a79935d2b6c1fa2d4e9d0f3335196}{}\index{sock\+::base\+::\+Locked\+Queue@{sock\+::base\+::\+Locked\+Queue}!push\+\_\+back@{push\+\_\+back}}
\index{push\+\_\+back@{push\+\_\+back}!sock\+::base\+::\+Locked\+Queue@{sock\+::base\+::\+Locked\+Queue}}
\subsubsection[{push\+\_\+back(const T \&x)}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename T, typename L\+O\+C\+K, typename S\+T\+O\+R\+A\+G\+E = std\+::deque$<$\+T$>$$>$ void {\bf sock\+::base\+::\+Locked\+Queue}$<$ T, L\+O\+C\+K, S\+T\+O\+R\+A\+G\+E $>$\+::push\+\_\+back (
\begin{DoxyParamCaption}
\item[{const T \&}]{x}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classsock_1_1base_1_1_locked_queue_aa71a79935d2b6c1fa2d4e9d0f3335196}


The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
E\+:/git/sock/sock/base/\hyperlink{queue_8h}{queue.\+h}\end{DoxyCompactItemize}
